#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>

/*test1*/
//#include<assert.h>
//
//int MyStrlen(char* str)
//{	
//	assert(str != NULL);
//	if (*str == '\0')
//		return 0;
//	else
//		return 1 + MyStrlen(str + 1);
//}
//
//int main()
//{
//	char str[] = "abcdef";
//	int len = MyStrlen(str);
//	printf("%d\n", len);
//	return 0;
//}


/*test2*/
//int GetBitSum(unsigned int n)
//{	
//	if (n > 9)
//	{
//		return n % 10 + GetBitSum(n / 10);
//	}
//	else
//		return n;
//
//}
//
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	int sum = GetBitSum(n);
//	printf("%d\n", sum);
//	return 0;
//}


/*test3*/
//int Fib(int n)
//{
//	if (n == 1 || n == 2)
//		return 1;
//	else
//		return Fib(n - 1) + Fib(n - 2);
//}
//
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	int num = Fib(n);
//	printf("%d\n", num);
//	return 0;
//}


int fib(int n)
{
	int i = 0;
	int f1 = 1;
	int f2 = 1;
	int f3 = 1;
	for (i = 3; i <= n; i++)
	{
		f3 = f2 + f1;
		f1 = f2;
		f2 = f3;
	}
	return f3;
}

int main()
{
	int n = 0;
	scanf("%d", &n);
	int num = fib(n);
	printf("%d\n", num);
	return 0;
}